#ifndef MANIPULATION_ENNEMIS_H
#   define MANIPULATION_ENNEMIS_H



#include "ennemis.h"
#include "base_donnees.h"






/**
 * \fn void init_liste_ennemis(struct liste_ennemis* liste)
 * \brief Prepare une liste_ennemis a etre remplie
 *
 * \param[out] liste L'adresse de la liste a initialiser
 */
void init_liste_ennemis(struct liste_ennemis* liste);



/**
 * \fn void ajouter_ennemi(struct liste_ennemis* liste, const unsigned int id,
                           const unsigned int x, const unsigned int y,
                           const struct base_donnees* donnees)
 * \brief Ajoute un ennemi dans une liste_ennemis
 *
 * \param[in,out] liste Un pointeur vers la liste a modifier
 * \param[in] id id de l'ennemi a ajouter (position dans la liste d'ennemis de la base_donnees)
 * \param[in] x Coordonnee horizontale d'apparition de l'ennemi
 * \param[in] y Coordonnee verticale d'apparition de l'ennemi
 * \param[in] donnees L'adresse d'une base_donnees correctement remplie
 */
void ajouter_ennemi(struct liste_ennemis* liste, const unsigned int id,
                    const unsigned int x, const unsigned int y,
                    const struct base_donnees* donnees);



/**
 * \fn void supprimer_ennemi(struct liste_ennemis* liste, struct ennemi* enn)
 * \brief Supprime l'ennemi dont l'adresse est passee en parametre
 *
 * \param[in,out] liste Un pointeur vers la liste a modifier
 * \param[in] enn L'adresse de l'ennemi a supprimer
 */
void supprimer_ennemi(struct liste_ennemis* liste, struct ennemi* enn);



/**
 * \fn void detruire_liste_ennemis(struct liste_ennemis* liste)
 * \brief Vide une liste_ennemis en liberant toute la memoire
qui lui avait ete allouee
 *
 * \param liste La liste a detruire
 */
void detruire_liste_ennemis(struct liste_ennemis* liste);



/**
 * \fn est_vide_liste_ennemis(const struct liste_ennemis* liste)
 * \brief Dit si une liste d'ennemis est vide ou non
 *
 * \param[in] liste L'adresse de la liste a analyser
 * \return VRAI si la liste est vide,\n
 *         FAUX sinon
 */
char est_vide_liste_ennemis(const struct liste_ennemis* liste);



#endif /* MANIPULATION_ENNEMIS_H */
